﻿/* -----------------------------------------------------------------------------
 * Copyright (c) 2019 linling
 *
 * 本软件"按原样"提供，没有任何明示或暗示的保证。 在任何情况下，作者均
 * 不对因使用本软件而导致的任何损害承担责任。 允许任何人将本软件用于
 * 任何目的（包括商业应用程序），并对其进行更改并自由重新分发，但受以下限制：
 *
 * 1.不得歪曲本软件的来源; 你不能声称你写了原始软件。 
 *   如果你在产品中使用此软件，在产品文档中的承认将不胜感激，但不是必需的。
 *
 * 2.更改的源版本必须明确标记，不得歪曲为原始软件。
 *
 * 3.不得从任何来源分发中删除或更改此通知。
 */
class Modbus {
public:
	qSerialPort  SerialPort;
	DigitalOut   rs485ctrl;
	Modbus(PinName tx, PinName rx, PinName ctrl):SerialPort(tx,rx), rs485ctrl(ctrl){

	}
	void rs485send(byte* buf, int len);
	bool ReadReg(int mdaddr, int regaddr, int cnt, byte* rbuf);
	bool WriteReg(int mdaddr, int regaddr, int data);
	bool WriteReg(int mdaddr, int regaddr, int cnt, byte* wbuf, byte* buf = NULL);
private:
};